package com.facade;

import java.io.Serializable;
import java.util.List;

import com.dao.TelefoneDAO;
import com.model.Telefone;

public class TelefoneFacade implements Serializable{
	private static final long serialVersionUID = 1L;
	
	private TelefoneDAO telefoneDAO = new TelefoneDAO();

	public void createTelefone(Telefone telefone) {
		telefoneDAO.beginTransaction();
		telefoneDAO.save(telefone);
		telefoneDAO.commitAndCloseTransaction();
	}

	public void updateTelefone(Telefone telefone) {
		telefoneDAO.beginTransaction();
		Telefone persistedTelefone = telefoneDAO.find(telefone.getId());
		persistedTelefone.setTelefone(telefone.getTelefone());
		telefoneDAO.update(telefone);
		telefoneDAO.commitAndCloseTransaction();
	}

	public Telefone findTelefone(int telefoneId) {
		telefoneDAO.beginTransaction();
		Telefone telefone = telefoneDAO.find(telefoneId);
		telefoneDAO.closeTransaction();
		return telefone;
	}

	public List<Telefone> listAll() {
		telefoneDAO.beginTransaction();
		List<Telefone> result = telefoneDAO.findAll();
		telefoneDAO.closeTransaction();
		return result;
	}

	public void deleteTelefone(Telefone telefone) {
		telefoneDAO.beginTransaction();
		Telefone persistedTelefone = telefoneDAO.findReferenceOnly(telefone.getId());
		telefoneDAO.delete(persistedTelefone);
		telefoneDAO.commitAndCloseTransaction();
	}
}